#ifndef MAINWINDOW_H
#define MAINWINDOW_H

/*****************************************************************************************
  @Copyright  2020-2021
  @Date       2021-03-15
  @Author     qiaowei
  @Contact    weiweiqiao@126.com
  @Version    1.0
  @Brief      主窗体类，显示控件，根据用户选择显示信息
  @Other      none
  @History    none
  @Functions  none
******************************************************************************************/

#include <QMainWindow>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class QAction;
class Window_manager;

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

signals:
    /***************************************************************************
     @date     2021-03-14
     @author   qiaowei
     @contact  weiweiqiao@126.com
     @version  1.0
     @brief    发送获取主机网络设置信号
     @param    flag 用户是否选择只显示IPv4标志位，true 只显示IPv4，false 显示所有协议
    ***************************************************************************/
    void si_host_info(bool flag);

private:
    void init_widgets();

    void init_connections();

private slots:
    /***************************************************************************
     @date     2021-03-14
     @author   qiaowei
     @contact  weiweiqiao@126.com
     @version  1.0
     @brief    点击获取主机网络配置按钮
    ***************************************************************************/
    void sl_button_host_address_ip();

    /***************************************************************************
     @date     2021-03-14
     @author   qiaowei
     @contact  weiweiqiao@126.com
     @version  1.0
     @brief    获取主机网络配置，将列表中的配置信息设置到窗体显示
    ***************************************************************************/
    void sl_get_host_info(QStringList list);

private:
    Ui::MainWindow *ui;

    Window_manager* window_manager_;

    QAction* action_exit_;
};
#endif // MAINWINDOW_H
